package com.dmgis.qxfw.dataservice.businessservice.yysl.service;


import com.dmgis.qxfw.dataservice.businessservice.api.entity.qx.*;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.qx.soil_humidity;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.yj.*;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.zy.*;
import com.dmgis.qxfw.dataservice.businessservice.common.domain.*;
import com.dmgis.qxfw.dataservice.businessservice.common.entity.*;
import com.dmgis.qxfw.dataservice.businessservice.common.entity.MsgMediumSmallScale;
import com.dmgis.qxfw.dataservice.businessservice.yysl.pojo.QPF;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

public interface IWaternfoService {

	/*获取自动站最新时间*/
	public MsgMediumSmallScaleKey getSmallScaleNewDate();

	/*获取预警查询时间*/
	public DZWarning getDZWarningNewDate();

	/*获取预警查询时间*/
	public DZWarning getPageNewDate(String table);

	/*获取预警*/
	public List<DZWarning> getDZWarning(DZwarningSearch selectKey);

	/*获取山洪沟预警预警*/
	public List<Danger_warning> getMountainFlood(DZwarningSearch selectKey);

	/*获取防汛预案*/
	public List<Flooded> getFloodPlan();

	/*获取水文站*/
	public List<WaterStation> getWaterStation();

	/*获取水文站经纬度*/
	public List<WaterStation> getWaterStations(WaterStation selectKey);

	/*获取灾害县点*/
	public List<DisasterPoint> getDPointCountys();

	/*获取灾害类型*/
	public List<DisasterPoint> getDPointTypes();

	/*获取历史灾情时间*/
	public DHistory getDHistoryNewDate();

	/*获取历史灾情*/
	public List<DHistory> getDHistory(DHistorySearch selectKey);

	/*获取灾点查询*/
	public List<potential_points> getDPoint(DPoint selectKey);

	/*获取面雨量流域*/
	public List<Rainwatershed> getRainWater();


	/*获取面雨量乡镇*/
	public List<country_point> getCountry();
	/*获取各地区雨量*/
	public List<MsgMediumSmallScale> getSumRain(SRainfallSearch selectKey);

	/*获取单时间各地区雨量*/
	public List<MsgMediumSmallScale> getDSumRain(SRainfallSearch selectKey);

	/*获取预报面雨量雨量*/
	public List<TownshipForecast> getYBRainfall(TownshipForecastKey selectKey);

	public String getProductID(String docpath);

	//山洪预警
	List<sl_warning> getSLWarning();

	public List<DZWarning> getDZAreaDoc(String docid);

	//初始化最新时间
	Date getWaterNewDate();

	//初始化站点
	List<water> getWaterSta();

	//初始化站点
	List<water_station> getWaterSta2();

	//水位站查询
	List<water_station> waterQuery(String startDate, String endDate, String countys);

	//水位动态图
	List<water> qxWaterQuery(ActualElemQuery elemQuery);

	//最新水位数据
	List<water> firstWaterQuery();

	//水库可增容
	List<reservoir> getReservoir();

	//得到实况水位
	List<reservoir_water_info> findWaterInfo(String stationname);

	//根据提交的waterlev条件和stationname查询
	List<Flooded> findAllFlooded(String stationname, Double waterlev);


	/**
	 * 获取应急点
	 * @author ymf
	 * @date 2019/9/18
	 * @param
	 * @return
	 **/
	public List<Emergency> getEmpoint(DZQuery dzQuery);


	//查询水库信息
	List<water_station> initReservoirInfo();

	List<reservoir_water_fcst> getInboundFlowFcstInfo(reservoir_water_fcst selectKey) throws ParseException;// 获取水库入库流量预报结果信息

	List<reservoir_water_fcst> getInboundFlowFcstInfoDays(reservoir_water_fcst selectKey) throws ParseException;// 获取水库入库流量预报结果信息


	List<reservoir_irrigation_index_fcst>  getIrrigationFcstInfo(reservoir_irrigation_index_fcst selectKey);  //// 获取水库灌溉指数预报结果信息

	/***
	 * 得到水利灾点查询
	 * @param county
	 * @return
	 */
	List<potential_points> getSLPoint(String county);

	List<sl_warning> getAuditingWarn();

	List<sl_warning> getWarnmessage(String id);

	//更新意见
	public String updOpinion(sl_warning sl_warning, String docid);


	/****
	 * 得到水利设施
	 * @return
	 */
	List<water_facilities> getFacilities();
	/***
	 * 获取预警信号  当天
	 * @return
	 */
	Object GetWarnSignalInfo();

	/***
	 * 获取预警信号  文字滚动
	 * @return
	 */
	List<warning> GetWarnSignalInfoWenZi();

	/***
	 * 超警戒水位查询
	 * @param stationname
	 * @return
	 */
	Object GetWaterWarnMoniInfo(String stationname);
	/***
	 * 河道水位监控
	 * @return
	 */
	Object GetRiverWarnMoniInfo();
	/***
	 * 获取城镇预报最新时间*/
	public forecastinfotemp getInitCityMaxTime(String name, String county);

	/***
	 * 获取城镇预报站点信息*/
	public List<township_station> getloadCityStation();

	/*城镇预报查询*/
	public List<forecastinfotemp> getCityForecast(forecastinfotemp selectKey, String type);
	/***
	 * 得到最近站点未来七天天气预报
	 * @param selectKey
	 * @param lon
	 * @param lat
	 * @return
	 */
	List<TownshipForecast> getNearStaThreeForecast(TownshipForecastKey selectKey, String lon, String lat);

	/***
	 * 24小时天气
	 * @return
	 */
	Object getWeather();
	/***
	 * 土壤湿度
	 * @param startDate
	 * @param endDate
	 * @param level
	 * @return
	 */
	List<soil_humidity> soilChart(String stationId, String startDate, String endDate, String level);
	/****
	 * 蒸发量  默认过去24小时
	 * @param startDate
	 * @param endDate
	 * @param stationId
	 * @return
	 */
	List<msgmediumsmallscales> evaporationQuery(String startDate, String endDate, String stationId);
	/***
	 * 气温  默认过去24小时
	 * @param endDate
	 * @param stationname
	 * @return
	 */
	List<msgmediumsmallscales> tempQuery( String endDate, String stationname);
	/***
	 * 干旱监测
	 * @param startDate
	 * @param endDate
	 * @param stationname
	 * @return
	 */
	List<drought> droughtChart(String startDate, String endDate, String stationname);

	/***
	 * 得到最新时间
	 * @return
	 */
	reservoir_water_fcst GetNewestDate();

	/***
	 * 得到最新时间
	 * @return
	 */
	reservoir_irrigation_index_fcst GetIrrigationNewestDate();

	/***
	 * 面雨量
	 * @param selectKey
	 * @return
	 */
	List<area_rain> getSumAreaRain(SRainfallSearch selectKey);

	Object getmenu(String reservoirid);

	List<QPF> getQPF(String date, String area);

	List<job_model> getProductType();

	Object getPublishRecord(String startDate, String endDate,String productType,String areaName);
	/**
	 * 获取最新实况数据
	 * @return
	 */
	String getQPFNewDate();

	List<summary_product> getCommonWord(String bigtype, String smalltype);

	Object getneartime();

}
